1. Field of the Invention
This invention relates to data processing systems. More particularly, this invention relates to data processing systems incorporating both a main processor and a coprocessor.
2. Description of the Prior Art
It is known to provide data processing systems incorporating both a main processor and a coprocessor. Examples of such data processing systems are those of ARM Limited, Cambridge, England, which provides main processors such as the ARM7 or ARM9 that may be combined with a coprocessor, such as the Piccolo coprocessor, for performing functions such as specialised digital signal processing operations. Further examples of coprocessors may be floating point arithmetic coprocessors and the like.
Coprocessors are often used to provide additional functionality within a data processing system that is not required in the basic system, but may be useful in certain circumstances when the additional overhead of providing a suitable coprocessor is justified. Particularly demanding data processing environment are those that involve digital signal processing, such as video image manipulation. The volumes of data that require processing in such applications can be high. This presents a challenge to provide data processing systems able to cope with the volume of processing necessary whilst simultaneously having a relatively low cost and low power consumption.
One approach to dealing with such computationally intensive applications is to provide special purpose digital signal processing circuitry. Such special purpose circuitry can have an architecture specifically adapted to perform a relatively restricted range of processing operations, but at a relatively high speed. As an example, multiple data channels may be provided to stream data into and out of the relevant circuit portions in parallel. Whilst such an arrangement may be able to cope with the high data processing volumes required, it generally has the disadvantage of being inflexible. This inflexibility may mean that a relatively minor change in the algorithm it is desired to execute could require expensive corresponding hardware changes. This contrasts with a general purpose processor which is generally designed from the outset to be able to execute an enormous variety of different algorithms.